const GCounter = require("./GCounter");

// 创建两个副本
const A = new GCounter("A");
const B = new GCounter("B");

// 每个副本各自自增
A.increment();
A.increment();
A.increment();

B.increment();
B.increment();

console.log("当前A的状态", A.getState()); // { A: 3 }
console.log("当前B的状态", B.getState()); // { B: 2 }

// 假设现在联网了，两个副本就要进行合并
A.merge(B.getState());
B.merge(A.getState());

console.log("当前A的状态", A.getState()); // { A: 3, B: 2 }
console.log("当前B的状态", B.getState()); // { A: 3, B: 2 }
console.log("整个计数器的值", A.value()); // 5
console.log("整个计数器的值", B.value()); // 5
